package com.songlanyun.modules.goods.model.dto;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.songlanyun.common.drive.ValueObject;
import com.songlanyun.common.enums.GoodsConstant;
import com.songlanyun.modules.goods.model.values.GoodsSkuTableItem;
import com.songlanyun.modules.goods.model.values.SkuItem;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * 商品创建修改时接参使用
 */
@Data
public class GoodsDTO implements ValueObject {

    {
        source= 0;
        thirdSpuId = 0L;
        third = false;
    }

    private Integer isOfflineProduct;

    private Long id;
    /**
     * 发布的商家店铺Id
     */
    private Long shopId;

    /**
     * 商品标题
     */
    private String title;

    /**
     * 主图视频
     */
    private String videoUrl;
    /**
     * 短标题
     */
    private String shortTitle;

    /**
     * SPU编码
     */
    private String spuCode;

    /**
     * 限购数量(0：代表不限购，大于0，为限购)
     */
    private Integer limitBuyNum;

    /**
     * 所属商品分类id
     */
    private Long categoryId;

    /**
     * 所属惠选分类id
     */
    private Long hxCategoryId;

    /**
     * 运模模板id
     */
    private Integer freightTemplateId;


    /**
     * 积分类型（0，不是积分商品，1积分兑换商品）
     */
    private boolean pointGoods;

//    /**
//     * 是否是积分兑换（0，不是积分兑换就是要使用积分，1积分兑换）
//     */
//    private Boolean exchange;


    /**
     * 是否开启会员折扣
     */
    private Boolean openUserDiscount;

    /**
     * 商品介绍
     */
    private String remark;

    /**
     * 顺序
     */
    private Integer sort;

    /**
     * 初始化销量
     */
    private Integer initSaleNum;


    /**
     * 所属分组
     */
    private List<Long> goodsGroupIds;


    /**
     * 手机端的详情
     */
    private String mobileDetail;


    //商品规格skus相关================================================================
    /**
     * 商品规格
     */
    private List<GoodsSkuDTO> goodsSkuList;


    //商品规格表相关=====================================================================
    /**
     * 商品的规格表
     * [
     * {"head":{"id":123,"name":"颜色"},"values":[{"id":12344,"name":"白色"},{"id":123,"name":"红色"}]}
     * {"head":{"id":12443,"name":"尺码"},"values":[{"id":1234444,"name":"175"},{"id":12443,"name":"180"}]}
     * {"head":{"id":124435,"name":"性别"},"values":[{"id":24324,"name":"男"},{"id":324323,"name":"女"}]}
     * ]
     */
    private List<GoodsSkuTableItem> skuTable;


    //商品图片相关===================================================================================
    private List<String> images;

    //标签相关===================================================================================
    /**
     * 热销
     */
    private Boolean hot;

    /**
     * 是否是新品
     */
    private Boolean newGoods;

    /**
     * 是否推荐
     */
    private Boolean recommend;


    /**
     * 赠送积分
     */
	private BigDecimal givePoint = BigDecimal.ZERO ;

    /**
     * 赠送贡献值
     */
    private BigDecimal consumptionValue = BigDecimal.ZERO;


    /**
     * 是否免费
     */
    private Boolean free = false;


    /**
     * 商品分区特征(0,普通商品,1激活商品,)
     */
    private Integer areaFeature;

    /**
     * 购买服务礼包可以获得的区域
     */
    private Integer servicePackageArea;


    /**
     * 所有规格值集合，只在下拉第三方商品时使用
     */
    @JsonIgnore
    private List<SkuItem> values;

    //为第三方商品补加的字段=========================================================================

    /**
     * 第三方商品的SpuId;
     */
    private Long thirdSpuId;

    /**
     *  是否是第三方商品
     */
    private Boolean third;

    /**
     * 如果是第三方商品，来源有效
     * 来源1云仓2京东6阿里巴巴7天猫11华南一仓14华东一仓15淘宝
     */
    private Integer source;
}
